/*
 * @Author: your name
 * @Date: 2021-10-17 00:47:32
 * @LastEditTime: 2021-10-17 01:11:37
 * @LastEditors: your name
 * @Description: In User Settings Edit
 * @FilePath: \webrtcdemo\turnserver\read_auth_file.cc
 */
/*
 *  Copyright 2018 The WebRTC Project Authors. All rights reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */

#include "read_auth_file.h"

#include <stddef.h>

#include "rtc_base/string_encode.h"

namespace webrtc_examples
{

  std::map<std::string, std::string> ReadAuthFile(std::istream *s)
  {
    std::map<std::string, std::string> name_to_key;
    for (std::string line; std::getline(*s, line);)
    {
      const size_t sep = line.find('=');
      if (sep == std::string::npos)
        continue;
      char buf[32];
      size_t len = rtc::hex_decode(buf, sizeof(buf), line.data() + sep + 1,
                                   line.size() - sep - 1);
      if (len > 0)
      {
        name_to_key.emplace(line.substr(0, sep), std::string(buf, len));
      }
    }
    return name_to_key;
  }

} // namespace webrtc_examples
